'''
Python练习题问题如下：
问题简述：有一分数序列：2/1，3/2，5/3，8/5，13/8，21/13
要求：求出这个数列的前20项之和。
Python解题思路分析：这道题要关注分子与分母的变化规律。2，3，5，8......
'''
#!/usr/bin/python
# -*- coding: UTF-8 -*-
from functools import reduce
print("方法一")
a = 2
b = 1
s = 0
for n in range(1, 21):
    s += a / b
    t = a
    a = a + b
    b = t
print(s)

print("方法二")
a = 2
b = 1
s = 0
for n in range(1, 21):
    s += a / b
    b,a = a, a + b
print(s)

print("方法三，lambda方式")
a = 2
b = 1
l = []
for n in range(1, 21):
    b,a = a,a+b
    l.append(a / b)
print(reduce(lambda x,y:x + y, l))